1. Field of the Invention
The present invention relates to a data development device and a data development method used in an optical disk reproducing device such as HD DVD, and Blu-ray disk, the device and the method developing image data compressed in PNG method.
2. Description of Related Art
PNG (Portable Network Graphics) format has recently been known as a format of new image data. This format is widely used in web, next-generation DVD or the like. The development of the PNG data is realized by performing each process of Huffman decoding, LZ77 development, and PNG inverse filter operation (see for example United States Patent Application Publication No. 2003-92684).
FIG. 12 shows a conventional LZ77 development device. The LZ77 development device 700 includes an LZ77 development part 701, a DMA 702, an internal dictionary memory 703, and a DMA 704. Huffman decode result is input to the LZ77 development part 701. The LZ77 development part 701 stores previous decode result in a memory as a dictionary and expands data by referring to the dictionary when the data that is same to the previous data is output. Therefore, the LZ77 development device needs to have the memory corresponding to the dictionary.
In addition, the dictionary has capacity of up to 32 KB. In an application of LSI or the like, it is not practical to embed all the memory for dictionary in the LSI in cost aspect. Then, there is provided a technique for storing a part of the dictionary memory in the LSI internal dictionary memory 703 and the rest in an external dictionary area 711 of an external memory 710 as shown in FIG. 12. According to the technique, it is possible to reduce cost of the LSI with minimum performance degradation.
The DMA 702 reads out data when the LZ77 development part 701 refers to the external dictionary. The DMA 704 writes (flashes) the part or all of the data written in the internal dictionary memory 703 into the external dictionary area 711.
FIG. 13 shows a conventional PNG inverse filter arithmetic device. The PNG inverse filter arithmetic device 800 includes a PNG inverse filter 801, a line memory 802, and a DMA 803. The PNG inverse filter 801 performs arithmetic operation between the image data for one line that is previously output and the LZ77 development result. Therefore, the PNG inverse filter arithmetic device 800 needs to have line memory 802 storing data for one line that is previously output. In the application such as LSI or the like, it may be possible to store the data for one line that is previously output on the external memory 810 in cost aspect. However, it is desirable to store the data for one line that is previously output on the embedded memory of the LSI from an aspect of process performance as shown in FIG. 13. Note that the PNG inverse filter arithmetic processing result is stored in the image data output area 811 of the external memory 810 as the image data.
Based on such a background, it is preferable that the PNG development device includes the part of the dictionary memory for LZ77 (hereinafter referred to as internal dictionary) and the line memory for PNG inverse filter operation (hereinafter referred to as line memory) in order to achieve high process performance.
FIG. 14 shows a conventional PNG data development device. The PNG data development device 900 includes an LZ77 development part 901, a DMA 902, an internal dictionary memory 903, a DMA 904, an inverse PNG filter 905, a DMA 906, and a line memory 907. The PNG data development device 900 is connected to an external memory 910 including an external dictionary area 911 and an image data output area 912. As stated above, the PNG data development device 900 includes the internal dictionary memory 903 storing the LZ77 development result as a dictionary and the line memory 907 storing the image data that is previously output. The data that cannot be stored in the internal dictionary memory 903 is written into the external dictionary area 911 by the DMA 904. The LZ77 development part 901 accesses the external dictionary area 911 or the internal dictionary memory 903 to refer to the previous development result. The PNG inverse filter 905 reads out the image data that is previously output from the line memory 907 and performs inverse PNG filter processing on the data and the development result of the LZ77 development part 901 to generate the image data.
However, we have now been discovered that there are caused several problems when the PNG data development device includes the part of the memory for LZ77 dictionary as the internal dictionary and the line memory for PNG inverse filter operation. First, there is unused space in the memory for PNG inverse filter operation. This is caused because the data amount for one line varies for each image whereas the memory capacity is fixed.
Second, the process performance is degraded. This is because it is needed to access the external memory when the data is not stored in the internal dictionary in referring to the dictionary since only the part of the memory for LZ77 dictionary is stored as the internal dictionary.